home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / T-TPUG Old Monthly Disks / (c)tm.d64 / t.v. satellite.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  5KB  |  162 lines

  1. 50 POKE53280,0:POKE53281,0
  2. 100 REM - TV SATELLITES, DAVID WILLIAMS, 1982
  3. 150 :
  4. 200 LA=-41.2:LO=-174.8:REM LATITUDE & LONGITUDE OF WELLINGTON (DEFAULT VALUES)
  5. 250 DEF FNRO(X)=INT(100*X+.5)/100
  6. 300 CF=(null)/180:REM DEGREE/RADIAN FACTOR
  7. 350 R=6.615: REM RADIUS OF GEOSYNCHRANOUS ORBIT IN UNITS OF EARTH RADIUS
  8. 400 :
  9. 450 REM READ SATELLITE DATA FROM TABLE AT END OF PROGRAM.
  10. 500 DIM SN$(100),LS(100)
  11. 550 N=-1
  12. 600 READ SN$:IF SN$="ENDDATA" THEN 750
  13. 650 N=N+1:SN$(N)=SN$:READ LS(N)
  14. 700 GOTO 600
  15. 750 :
  16. 800 PRINT "[154][142][147]DO YOU WANT INSTRUCTIONS ?
  17. 850 [161] G$:[139] G$[179][177]"Y" [175] G$[179][177]"N" [167] 850
  18. 900 [139] G$[178]"Y" [167] 6400
  19. 950 :
  20. 1000 [143] INPUT SECTION
  21. 1050 [153] "LOADINPUT LATITUDE AND LONGITUDE IN DEGREES.";
  22. 1060 [153] "TAB(TAB(TAB(TAB(TAB( TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(CLOSETAB(TAB(TAB(CLOSETAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(TAB(CLOSETAB(TAB(CLOSETAB(TAB(TAB(TAB(TAB(TAB(TAB(
  23. 1100 PRINT "[150]USE NEGATIVE NUMBERS FOR SOUTH LATITUDE
  24. 1150 [153] "  AND EAST LONGITUTE."
  25. 1200 [153] "CONTYOUR LATITUDE (DEG. NORTH)   ";LA;"CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";[163]27);
  26. 1250 MX[178]90:[141] 5850:[139] ER [167] 1200
  27. 1300 LA[178]IN
  28. 1350 [153] "CONTYOUR LONGITUDE (DEG. WEST)   ";LO;"CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";[163]27);
  29. 1400 MX[178]360:[141] 5850:[139] ER [167] 1350
  30. 1450 LO[178]IN
  31. 1500 :
  32. 1550 LT[178]LA:LG[178]LO
  33. 1600 [139] N[178][171]1 [167] 2250
  34. 1650 [153] "LOADDEFWHICH SATELLITE ?CONT"
  35. 1700 [129] I[178]0 [164] N
  36. 1750 [153] "THEN";[199](65[170]I);"WAITFN";SN$(I)
  37. 1800 [130]
  38. 1820 [153]"THENZWAITFNDEFOTHER";
  39. 2000 [161] G$:[139] G$[178]"" [167] 2000
  40. 2050 [139] G$[178]"Z"[167] 2250
  41. 2100 G[178][198](G$)[171]65:[139] G[179]0 [176] G[177]N [167] 2000
  42. 2150 [153]"",,"CONTTHEN";G$;"WAITFN":[129]I[178]0[164]N:[153]:[130]
  43. 2200 LS[178]LS(G):[137] 2700
  44. 2250 [153] "LOADLISTINPUT LONGITUDE OF SATELLITE IN
  45. 2300 PRINT "DEGREES WEST [154](ENTER EAST LONGITUDE
  46. 2350 [153] "AS A NEGATIVE NUMBER).LIST  CLOSECLOSECLOSECMDCMDCMD";
  47. 2450 MX[178]360:[141] 5850:[139] ER [167] 2250
  48. 2500 LS[178]IN
  49. 2550 [153]
  50. 2600 [153]
  51. 2650 [153]
  52. 2700 :
  53. 2750 LD[178]LG[171]LS: [143] LONGITUDE DIFFERENCE
  54. 2800 LT[178]90[170]LT: [143] LATITUDE FROM S. POLE
  55. 2850 LT[178]CF[172]LT: [143] LATITUDE IN RADIANS
  56. 2900 LD[178]CF[172]LD: [143] LONGITUDE DIFF. IN RADIANS
  57. 2950 :
  58. 3000 [143] SATELLITE'S X,Y,Z COORDINATES
  59. 3050 Y[178]0:[143] EQUATORIAL ORBIT
  60. 3100 X[178]R[172][191](LD)
  61. 3150 Z[178]R[172][190](LD)
  62. 3200 :
  63. 3250 [143] ROTATE SYSTEM TO PUT OBSERVER AT S. POLE
  64. 3300 D[178][182](Z): [143] DISTANCE FROM X-AXIS
  65. 3350 AN[178][255][172]((Z[179]0)[170].5): [143] AZIMUTH ANGLE ONTO Y-Z PLANE (Y-AXIS AS ZERO)
  66. 3400 AN[178]AN[170]LT: [143] ROTATE SYSTEM
  67. 3450 Y[178]D[172][190](AN): [143] NEW Y
  68. 3500 Z[178]D[172][191](AN): [143] NEW Z
  69. 3550 :
  70. 3600 [143] CALCULATE NEW BEARINGS
  71. 3650 [139] Z[178]0 [167] BE[178][255][172]((X[179]0)[170].5):[137] 3750
  72. 3700 BE[178][193](X[173]Z)[171][255][172](Z[179]0): [143] BEARING
  73. 3750 [139] X[178]0 [175] Z[178]0 [167] AL[178]([255][173]2)[172][180]([171]1[171]Y):[137] 3850
  74. 3800 AL[178][193](([171]1[171]Y)[173]([186](X[172]X[170]Z[172]Z))): [143] ALTITUDE
  75. 3850 BE[178]BE[173]CF: [143] BEARING IN DEGREES
  76. 3900 AL[178]AL[173]CF: [143] ALT. IN DEGREES
  77. 3950 [139] BE[179]0 [167] BE[178]BE[170]360:[137] 3950
  78. 4000 [139] BE[177][178]360 [167] BE[178]BE[171]360:[137] 4000
  79. 4050 :
  80. 4100 [143] ROUNDOFF
  81. 4150 BE[178][165]RO(BE)
  82. 4200 AL[178][165]RO(AL)
  83. 4250 :
  84. 4300 [143] PRINTOUT
  85. 4350 [153]
  86. 4400 [139] AL[179]0 [167] [153] "LISTSATELLITE INVISIBLE DEF(BELOW HORIZON)":[137] 5100
  87. 4500 [153] "LISTSATELLITE'S BEARING IS";BE;"DEGREES.CONT"
  88. 4550 [139] BE[178]0 [167] [153] "  (DUE NORTH)":[137] 4950
  89. 4600 [139] BE[179]90 [167] [153] "  (NORTH";BE;"DEGREES EAST)":[137]4950
  90. 4650 [139] BE[178]90 [167] [153] "  (DUE EAST)":[137] 4950
  91. 4700 [139] BE[179]180 [167] [153] "  (SOUTH";[165]RO(180[171]BE);"DEGREES EAST)":[137] 4950
  92. 4750 [139] BE[178]180 [167] [153] "  (DUE SOUTH)":[137] 4950
  93. 4800 [139] BE[179]270 [167] [153] "  (SOUTH";[165]RO(BE[171]180);"DEGREES WEST)":[137] 4950
  94. 4850 [139] BE[178]270 [167] [153] "  (DUE WEST)":[137] 4950
  95. 4900 [153] "  (NORTH";[165]RO(360[171]BE);"DEGREES WEST)"
  96. 4950 [153]:[153] "LISTALTITUDE IS";AL;"DEGREES."
  97. 5000 [139] AL[177]3 [167] 5100
  98. 5050 [153]:[153] "DEFLOW ALTITUDE - COMMUNICATION UNRELIABLE"
  99. 5100 :
  100. 5150 [153]"";
  101. 5200 [153]"CONTPRESSTHENSHIFTWAITONCMDCMDCMDCMDCMDTOTOTOTOTOFNFOR ANOTHER CALCULATION.";
  102. 5300 [146]653,1,1:[146]653,1
  103. 5350 [153] "LOAD
  104. 5500 GOTO1550
  105. 5550 PRINT "ANOTHER POSITION? ";
  106. 5600 GET G$:IF G$<>"Y" AND G$<>"N" THEN 5600
  107. 5650 PRINT "";G$;"[146]":FOR I=1 TO 1000:NEXT
  108. 5700 IF G$="Y" THEN 1000
  109. 5750 GOTO 5150
  110. 5800 :
  111. 5850 REM INPUT & CHECK
  112. 5900 INPUT IN$
  113. 5950 IF IN$="[160]" THEN ER=-1:PRINT "[145][145]":GOTO 6300
  114. 6000 IN=VAL(IN$)
  115. 6050 ER=(ABS(IN)>MX)
  116. 6100 IF ER=0 THEN 6300
  117. 6150 PRINT "OUT OF RANGE ![146][145]"
  118. 6200 FOR I=1 TO 2000:NEXT
  119. 6250 PRINT "              [145][145][145]"
  120. 6300 RETURN
  121. 6350 :
  122. 6400 REM INSTRUCTIONS
  123. 6450 PRINT "[147][155]THIS PROGRAM CALCULATES THE POSITION"
  124. 6500 PRINT "[152](EXPRESSED AS TRUE COMPASS BEARING AND"
  125. 6550 PRINT "ALTITUDE) [155]OF ANY SATELLITE WHICH IS IN"
  126. 6600 PRINT "GEOSTATIONARY ORBIT [152](ALMOST ALL T.V."
  127. 6650 PRINT "BROADCASTING AND RELAY SATELLITES ARE"
  128. 6700 PRINT "GEOSTATIONARY)[155].  YOU WILL BE ASKED FOR"
  129. 6750 PRINT "YOUR LATITUDE AND LONGITUDE, AND FOR"
  130. 6800 PRINT "THE LONGITUDE OF THE SATELLITE.":PRINT
  131. 6850 PRINT "THE PROGRAM PRINTS DEFAULT VALUES FOR"
  132. 6900 PRINT "YOUR LATITUDE AND LONGITUDE [152](WHICH"
  133. 6950 PRINT "ARE THOSE FOR WELLINGTON, NEW ZEALAND)[155].
  134. 7000 [153] "IF YOU ARE IN WELLINGTON, JUST PRESS THE";
  135. 7050 [153] "RETURN KEY.  THE PROGRAM ALSO CONTAINS
  136. 7100 PRINT "LONGITUDE DATA FOR SOME OF THE MORE
  137. 7150 [153] "FREQUENTLY USED SATELLITES."
  138. 7200 [153]:[153] "YOU CAN CHANGE THE DEFAULT LATITUDE
  139. 7250 PRINT "AND LONGITUDE BY EDITING LINE 200.
  140. 7350 [153] "ADDITIONAL SATELLITES CAN BE ADDED TO
  141. 7400 PRINT "THE DATA AT THE END OF THE PROGRAM.
  142. 7450 [153] "CONTPRESSTHENSHIFTWAITONCMDCMDCMDCMDCMDTOTOTOTOTOFNTO BEGIN.
  143. 7500 WAIT653,1,1:WAIT653,1
  144. 7550 GOTO 1000
  145. 7600 :
  146. 7650 REM SATELLITE DATA TABLE
  147. 7700 DATA ANIK 1,104
  148. 7750 DATA ANIK B,109
  149. 7800 DATA ANIK A2 & A3,114
  150. 7850 DATA ANIK D1,104.5
  151. 7900 DATA WESTAR 1,99
  152. 7950 DATA WESTAR 2,123.5
  153. 8000 DATA WESTAR 3,91
  154. 8050 DATA SATCOM 2,119
  155. 8100 DATA SATCOM 4,83
  156. 8150 DATA COMSTAR D1 & D2,95
  157. 8200 :
  158. 8250 REM ADDITIONAL SATELLITES, AND THEIR LONGITUDES (DEG. WEST) CAN BE ADDED
  159. 8300 REM TO TABLE ABOVE. NO OTHER CHANGES TO PROGRAM ARE NEEDED.
  160. 8350 :
  161. 8400 DATA ENDDATA
  162.